package com.wn.demo01;

/**
 * @author yellow Docter
 * @date 2024-09-06
 * @desc 蜗牛创想：www.woniuxy.com
 */
public class Demo04 {
        // 使用 volatile 修饰变量
        private static volatile boolean running = true;

        public static void main(String[] args) throws InterruptedException {
            // 启动一个线程来监视 running 变量
            Thread monitorThread = new Thread(() -> {
                while (running) {
                    // 线程会一直运行，直到 running 变量被设置为 false
                }
                System.out.println("Monitor thread stopped.");
            });

            // 启动线程
            monitorThread.start();

            // 主线程暂停一段时间，然后修改 running 变量
            Thread.sleep(2000); // 暂停 2 秒

            // 修改 volatile 变量
            running = false;

            // 等待监视线程结束
            monitorThread.join();

            System.out.println("Main thread finished.");
        }

}
